package com.monodaipoly2.view;


import com.monodaipoly2.persistencia.Calle;
import com.monodaipoly2.persistencia.Casilla;
import com.monodaipoly2.persistencia.Rol;
import com.monodaipoly2.persistencia.Usuario;
import com.monodaipoly2.servicio.CalleServicio;
import com.monodaipoly2.servicio.CasillaServicio;
import java.io.Serializable;
import org.springframework.context.annotation.Scope;
import com.monodaipoly2.servicio.UsuarioServicio;
import com.monodaipoly2.view.utils.MessageProvider;
import java.util.Collection;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;


import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Required;
import org.springframework.stereotype.Controller;
import org.springframework.webflow.execution.RequestContext;


import org.springframework.stereotype.Controller;

@Controller("casillaControlador")
@Scope("request")
public class CasillaControlador {
    private CasillaServicio casillaServicio;
    private CalleServicio calleServicio;
    private List<Casilla> casillas;
    private Casilla casilla;
    private int precio;

    public int getPrecio() {
        return precio;
    }

    public void setPrecio(int precio) {
        this.precio = precio;
    }



    public Casilla getCasilla() {
        return casilla;
    }

    public void setCasilla(Casilla casilla) {
        this.casilla = casilla;
    }



    public List<Casilla> getCasillas() {
        return casillaServicio.todasCasillas();
    }

    public void setCasillas(List<Casilla> casillas) {
        this.casillas = casillas;
    }

     public List<Calle> getCalles() {
        return casillaServicio.todasCalles();
    }


    @Required
    @Autowired
    public void setCasillaServicio(CasillaServicio casillaServicio) {
        this.casillaServicio = casillaServicio;
    }

    @Required
    @Autowired
    public void setCalleServicio(CalleServicio calleServicio) {
        this.calleServicio = calleServicio;
    }

    @PostConstruct
    public void iniciar(){
        this.casilla = new Casilla();
    }

    public String guardarCasillaModificada(Casilla c){
        String rdo="correcto";
        try{
            if(!c.getNombre().trim().isEmpty()){
                if(c.getTipoCasilla()!=null){
                    Calle calle=calleServicio.buscar(c.getTipoCasilla());
                    if(precio!=0)
                    calle.setPrecio(precio);
                    calleServicio.actualizar(calle);
                }
                casillaServicio.actualizar(c);
            }
            //casillaServicio.actualizar(c);
            //casillaServicio.actualizar(c);
            //System.out.println("nombre casilla: "+ c.getNombre());
            System.out.println("nuevo nombre: "+c.getNombre());
        }catch (Exception e){

            rdo="incorrecto";
        }
        finally{
            System.out.println(rdo);
            return rdo;
        }
    }

}
